﻿/*
 Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
*/
(function() {
    function v(a) {
        if (!a) throw"Languages-by-groups list are required for construct selectbox";
        var c = [], d = "", f;
        for (f in a)
            for (var g in a[f]) {
                var h = a[f][g];
                "en_US" == h ? d = h : c.push(h)
            }
        c.sort();
        d && c.unshift(d);
        return{
            getCurrentLangGroup: function(c) {
                a: {
                    for (var d in a)
                        for (var f in a[d])
                            if (f.toUpperCase() === c.toUpperCase()) {
                                c = d;
                                break a
                            }
                    c = ""
                }
                return c
            },
            setLangList: function() {
                var c = {}, d;
                for (d in a) for (var f in a[d]) c[a[d][f]] = f;
                return c
            }()
        }
    }

    var e = function() {
            var a = function(a, b, f) {
                var f = f || {}, g = f.expires;
                if ("number" == typeof g && g) {
                    var h = new Date;
                    h.setTime(h.getTime() + 1E3 * g);
                    g = f.expires = h
                }
                g && g.toUTCString && (f.expires = g.toUTCString());
                var b = encodeURIComponent(b), a = a + "=" + b, e;
                for (e in f) b = f[e], a += "; " + e, !0 !== b && (a += "=" + b);
                document.cookie = a
            };
            return{
                postMessage: {
                    init: function(a) {
                        document.addEventListener
                            ? window.addEventListener("message", a, !1)
                            : window.attachEvent("onmessage", a)
                    },
                    send: function(a) {
                        var b = a.fn || null, f = a.id || "", g = a.target || window, h = a.message || { id: f };
                        "[object Object]" == Object.prototype.toString.call(a.message) &&
                            (a.message.id || (a.message.id = f), h = a.message);
                        a = window.JSON.stringify(h, b);
                        g.postMessage(a, "*")
                    }
                },
                hash: { create: function() {}, parse: function() {} },
                cookie: {
                    set: a,
                    get: function(a) {
                        return(a = document.cookie.match(RegExp("(?:^|; )" +
                                a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, "\\$1") +
                                "=([^;]*)")))
                            ? decodeURIComponent(a[1])
                            : void 0
                    },
                    remove: function(c) { a(c, "", { expires: -1 }) }
                }
            }
        }(),
        a = a || {};
    a.TextAreaNumber = null;
    a.load = !0;
    a.cmd = { SpellTab: "spell", Thesaurus: "thes", GrammTab: "grammar" };
    a.dialog = null;
    a.optionNode = null;
    a.selectNode =
        null;
    a.grammerSuggest = null;
    a.textNode = {};
    a.iframeMain = null;
    a.dataTemp = "";
    a.div_overlay = null;
    a.textNodeInfo = {};
    a.selectNode = {};
    a.selectNodeResponce = {};
    a.langList = null;
    a.langSelectbox = null;
    a.banner = "";
    a.show_grammar = null;
    a.div_overlay_no_check = null;
    a.targetFromFrame = {};
    a.onLoadOverlay = null;
    a.LocalizationComing = {};
    a.OverlayPlace = null;
    a.LocalizationButton = {
        ChangeTo: { instance: null, text: "Change to" },
        ChangeAll: { instance: null, text: "Change All" },
        IgnoreWord: { instance: null, text: "Ignore word" },
        IgnoreAllWords: {
            instance: null,
            text: "Ignore all words"
        },
        Options: { instance: null, text: "Options", optionsDialog: { instance: null } },
        AddWord: { instance: null, text: "Add word" },
        FinishChecking: { instance: null, text: "Finish Checking" }
    };
    a.LocalizationLabel = {
        ChangeTo: { instance: null, text: "Change to" },
        Suggestions: { instance: null, text: "Suggestions" }
    };
    var w = function(b) { for (var c in b) b[c].instance.getElement().setText(a.LocalizationComing[c]) },
        x = function(b) {
            for (var c in b) {
                if (!b[c].instance.setLabel) break;
                b[c].instance.setLabel(a.LocalizationComing[c])
            }
        },
        j,
        n;
    a.framesetHtml = function(b) {
        return'<iframe src="' +
            a.templatePath +
            '" id=' +
            a.iframeNumber +
            "_" +
            b +
            ' frameborder="0" allowtransparency="1" style="width:100%;border: 1px solid #AEB3B9;overflow: auto;background:#fff; border-radius: 3px;"></iframe>'
    };
    a.setIframe = function(b, c) {
        var d = a.framesetHtml(c);
        return b.getElement().setHtml(d)
    };
    a.setCurrentIframe = function(b) { a.setIframe(a.dialog._.contents[b].Content, b) };
    a.setHeightBannerFrame = function() {
        var b = a.dialog.getContentElement("SpellTab", "banner").getElement(),
            c = a.dialog.getContentElement("GrammTab", "banner").getElement(),
            d = a.dialog.getContentElement("Thesaurus", "banner").getElement();
        b.setStyle("height", "90px");
        c.setStyle("height", "90px");
        d.setStyle("height", "90px")
    };
    a.setHeightFrame = function() {
        document.getElementById(a.iframeNumber + "_" + a.dialog._.currentTabId).style.height = "240px"
    };
    a.sendData = function(b) {
        var c = b._.currentTabId, d = b._.contents[c].Content, f, g;
        a.setIframe(d, c);
        b.parts.tabs.removeAllListeners();
        b.parts.tabs.on("click",
            function(h) {
                h = h || window.event;
                h.data.getTarget().is("a") &&
                    c != b._.currentTabId &&
                    (c = b._.currentTabId, d = b._.contents[c].Content, f =
                        a.iframeNumber + "_" + c, a.div_overlay.setEnable(), d.getElement().getChildCount()
                        ? s(a.targetFromFrame[f], a.cmd[c])
                        : (a.setIframe(d, c), g = document.getElementById(f), a.targetFromFrame[f] = g.contentWindow))
            })
    };
    a.buildSelectLang = function(a) {
        var c = new CKEDITOR.dom.element("div"), d = new CKEDITOR.dom.element("select"), a = "wscLang" + a;
        c.addClass("cke_dialog_ui_input_select");
        c.setAttribute("role", "presentation");
        c.setStyles({
            height: "auto",
            position: "absolute",
            right: "0",
            top: "-1px",
            width: "160px",
            "white-space": "normal"
        });
        d.setAttribute("id", a);
        d.addClass("cke_dialog_ui_input_select");
        d.setStyles({ width: "160px" });
        c.append(d);
        return c
    };
    a.buildOptionLang = function(b, c) {
        var d = document.getElementById("wscLang" + c), f = document.createDocumentFragment(), g, h, e = [];
        if (0 === d.options.length) {
            for (g in b) e.push([g, b[g]]);
            e.sort();
            for (var k = 0; k < e.length; k++)
                g = document.createElement("option"), g.setAttribute("value", e[k][1]), h =
                        document.createTextNode(e[k][0]),
                    g.appendChild(h), e[k][1] == a.selectingLang && g.setAttribute("selected", "selected"), f
                        .appendChild(g);
            d.appendChild(f)
        }
    };
    a.buildOptionSynonyms = function(b) {
        b = a.selectNodeResponce[b];
        a.selectNode.synonyms.clear();
        for (var c = 0; c < b.length; c++) a.selectNode.synonyms.add(b[c], b[c]);
        a.selectNode.synonyms.getInputElement().$.firstChild.selected = !0;
        a.textNode.Thesaurus.setValue(a.selectNode.synonyms.getInputElement().getValue())
    };
    var o = function(a) {
            var c = document,
                d = a.target || c.body,
                f = a.id || "overlayBlock",
                g = a.opacity ||
                    "0.9",
                a = a.background || "#f1f1f1",
                e = c.getElementById(f),
                i = e || c.createElement("div");
            i.style.cssText =
                "position: absolute;top:30px;bottom:41px;left:1px;right:1px;z-index: 10020;padding:0;margin:0;background:" +
                a +
                ";opacity: " +
                g +
                ";filter: alpha(opacity=" +
                100 * g +
                ");display: none;";
            i.id = f;
            e || d.appendChild(i);
            return{
                setDisable: function() { i.style.display = "none" },
                setEnable: function() { i.style.display = "block" }
            }
        },
        y = function(b, c, d) {
            var f = new CKEDITOR.dom.element("div"),
                g = new CKEDITOR.dom.element("input"),
                e = new CKEDITOR.dom.element("label"),
                i = "wscGrammerSuggest" + b + "_" + c;
            f.addClass("cke_dialog_ui_input_radio");
            f.setAttribute("role", "presentation");
            f.setStyles({ width: "97%", padding: "5px", "white-space": "normal" });
            g.setAttributes({ type: "radio", value: c, name: "wscGrammerSuggest", id: i });
            g.setStyles({ "float": "left" });
            g.on("click", function(b) { a.textNode.GrammTab.setValue(b.sender.getValue()) });
            d && g.setAttribute("checked", !0);
            g.addClass("cke_dialog_ui_radio_input");
            e.appendText(b);
            e.setAttribute("for", i);
            e.setStyles({
                display: "block",
                "line-height": "16px",
                "margin-left": "18px",
                "white-space": "normal"
            });
            f.append(g);
            f.append(e);
            return f
        },
        t = function(a) {
            a = a || "true";
            null !== a && "false" == a && p()
        },
        m = function(b) {
            var c = new v(b),
                b = "wscLang" + a.dialog.getParentEditor().name,
                b = document.getElementById(b),
                d = a.iframeNumber + "_" + a.dialog._.currentTabId;
            a.buildOptionLang(c.setLangList, a.dialog.getParentEditor().name);
            u[c.getCurrentLangGroup(a.selectingLang)]();
            t(a.show_grammar);
            b.onchange = function() {
                u[c.getCurrentLangGroup(this.value)]();
                t(a.show_grammar);
                a.div_overlay.setEnable();
                a.selectingLang = this.value;
                e.postMessage.send({
                    message: { changeLang: a.selectingLang, text: a.dataTemp },
                    target: a.targetFromFrame[d],
                    id: "selectionLang_outer__page"
                })
            }
        },
        z = function(b) {
            if ("no_any_suggestions" == b) {
                b = "No suggestions";
                a.LocalizationButton.ChangeTo.instance.disable();
                a.LocalizationButton.ChangeAll.instance.disable();
                var c = function(b) {
                    b = a.LocalizationButton[b].instance;
                    b.getElement().hasClass("cke_disabled") ? b.getElement().setStyle("color", "#a0a0a0") : b.disable()
                };
                c("ChangeTo");
                c("ChangeAll")
            } else
                a.LocalizationButton.ChangeTo.instance.enable(),
                    a.LocalizationButton.ChangeAll.instance.enable(), a.LocalizationButton.ChangeTo.instance
                        .getElement()
                        .setStyle("color", "#333"), a.LocalizationButton.ChangeAll.instance.getElement()
                        .setStyle("color", "#333");
            return b
        },
        A = {
            iframeOnload: function() {
                a.div_overlay.setEnable();
                var b = a.dialog._.currentTabId;
                s(a.targetFromFrame[a.iframeNumber + "_" + b], a.cmd[b])
            },
            suggestlist: function(b) {
                delete b.id;
                a.div_overlay_no_check.setDisable();
                q();
                m(a.langList);
                var c = z(b.word), d = "";
                c instanceof Array && (c = b.word[0]);
                d = c = c.split(",");
                n.clear();
                a.textNode.SpellTab.setValue(d[0]);
                for (b = 0; b < d.length; b++) n.add(d[b], d[b]);
                l();
                a.div_overlay.setDisable()
            },
            grammerSuggest: function(b) {
                delete b.id;
                delete b.mocklangs;
                q();
                m(a.langList);
                var c = b.grammSuggest[0];
                a.grammerSuggest.getElement().setHtml("");
                a.textNode.GrammTab.reset();
                a.textNode.GrammTab.setValue(c);
                a.textNodeInfo.GrammTab.getElement().setHtml("");
                a.textNodeInfo.GrammTab.getElement().setText(b.info);
                for (var b = b.grammSuggest, c = b.length, d = !0, f = 0; f < c; f++)
                    a.grammerSuggest.getElement().append(y(b[f],
                        b[f],
                        d)), d = !1;
                l();
                a.div_overlay.setDisable()
            },
            thesaurusSuggest: function(b) {
                delete b.id;
                delete b.mocklangs;
                q();
                m(a.langList);
                a.selectNodeResponce = b;
                a.textNode.Thesaurus.reset();
                a.selectNode.categories.clear();
                for (var c in b) a.selectNode.categories.add(c, c);
                b = a.selectNode.categories.getInputElement().getChildren().$[0].value;
                a.selectNode.categories.getInputElement().getChildren().$[0].selected = !0;
                a.buildOptionSynonyms(b);
                l();
                a.div_overlay.setDisable()
            },
            finish: function(b) {
                delete b.id;
                a.dialog.getContentElement(a.dialog._.currentTabId,
                    "bottomGroup").getElement().hide();
                a.dialog.getContentElement(a.dialog._.currentTabId, "BlockFinishChecking").getElement().show();
                a.div_overlay.setDisable()
            },
            settext: function(b) {
                delete b.id;
                a.dialog.getParentEditor().getCommand("checkspell");
                var c = a.dialog.getParentEditor();
                c.focus();
                c.setData(b.text,
                    function() {
                        a.dataTemp = "";
                        c.unlockSelection();
                        c.fire("saveSnapshot");
                        a.dialog.hide()
                    })
            },
            ReplaceText: function(b) {
                delete b.id;
                a.div_overlay.setEnable();
                a.dataTemp = b.text;
                a.selectingLang = b.currentLang;
                window.setTimeout(function() { a.div_overlay.setDisable() },
                    500);
                w(a.LocalizationButton);
                x(a.LocalizationLabel)
            },
            options_checkbox_send: function(b) {
                delete b.id;
                b = { osp: e.cookie.get("osp"), udn: e.cookie.get("udn"), cust_dic_ids: a.cust_dic_ids };
                e.postMessage.send({
                    message: b,
                    target: a.targetFromFrame[a.iframeNumber + "_" + a.dialog._.currentTabId],
                    id: "options_outer__page"
                })
            },
            getOptions: function(b) {
                var c = b.DefOptions.udn;
                a.LocalizationComing = b.DefOptions.localizationButtonsAndText;
                a.show_grammar = b.show_grammar;
                a.langList = b.lang;
                if (a.bnr = b.bannerId) {
                    a.setHeightBannerFrame();
                    var d = b.banner;
                    a.dialog.getContentElement(a.dialog._.currentTabId, "banner").getElement().setHtml(d)
                } else a.setHeightFrame();
                "undefined" == c &&
                (a.userDictionaryName
                    ? (c = a.userDictionaryName, d =
                    {
                        osp: e.cookie.get("osp"),
                        udn: a.userDictionaryName,
                        cust_dic_ids: a.cust_dic_ids,
                        id: "options_dic_send",
                        udnCmd: "create"
                    }, e.postMessage.send({ message: d, target: a.targetFromFrame[void 0] }))
                    : c = "");
                e.cookie.set("osp", b.DefOptions.osp);
                e.cookie.set("udn", c);
                e.cookie.set("cust_dic_ids", b.DefOptions.cust_dic_ids);
                e.postMessage.send({ id: "giveOptions" })
            },
            options_dic_send: function() {
                var b = {
                    osp: e.cookie.get("osp"),
                    udn: e.cookie.get("udn"),
                    cust_dic_ids: a.cust_dic_ids,
                    id: "options_dic_send",
                    udnCmd: e.cookie.get("udnCmd")
                };
                e.postMessage.send(
                    { message: b, target: a.targetFromFrame[a.iframeNumber + "_" + a.dialog._.currentTabId] })
            },
            data: function(a) { delete a.id },
            giveOptions: function() {},
            setOptionsConfirmF: function() {},
            setOptionsConfirmT: function() { j.setValue("") },
            clickBusy: function() { a.div_overlay.setEnable() },
            suggestAllCame: function() {
                a.div_overlay.setDisable();
                a.div_overlay_no_check.setDisable()
            },
            TextCorrect: function() { m(a.langList) }
        },
        B = function(a) {
            a = a || window.event;
            if ((a = window.JSON.parse(a.data)) && a.id) A[a.id](a)
        },
        s = function(b, c, d, f) {
            c = c || CKEDITOR.config.wsc_cmd;
            d = d || a.dataTemp;
            e.postMessage.send({
                message: {
                    customerId: a.wsc_customerId,
                    text: d,
                    txt_ctrl: a.TextAreaNumber,
                    cmd: c,
                    cust_dic_ids: a.cust_dic_ids,
                    udn: a.userDictionaryName,
                    slang: a.selectingLang,
                    reset_suggest: f || !1
                },
                target: b,
                id: "data_outer__page"
            });
            a.div_overlay.setEnable()
        },
        u = {
            superset: function() {
                a.dialog.showPage("Thesaurus");
                a.dialog.showPage("GrammTab");
                r()
            },
            usual: function() {
                a.dialog.hidePage("Thesaurus");
                p();
                r()
            }
        },
        C = function(b) {
            var c = new function(a) {
                var b = {};
                return{
                    getCmdByTab: function(c) {
                        for (var e in a) b[a[e]] = e;
                        return b[c]
                    }
                }
            }(a.cmd);
            b.selectPage(c.getCmdByTab(CKEDITOR.config.wsc_cmd));
            a.sendData(b)
        },
        p = function() { a.dialog.hidePage("GrammTab") },
        r = function() { a.dialog.showPage("SpellTab") },
        l = function() { a.dialog.getContentElement(a.dialog._.currentTabId, "bottomGroup").getElement().show() },
        q = function() {
            a.dialog.getContentElement(a.dialog._.currentTabId,
                "BlockFinishChecking").getElement().hide()
        };
    CKEDITOR.dialog.add("checkspell",
        function(b) {
            var c = function() {
                a.div_overlay.setEnable();
                var c = a.dialog._.currentTabId,
                    f = a.iframeNumber + "_" + c,
                    g = a.textNode[c].getValue(),
                    h = this.getElement().getAttribute("title-cmd");
                e.postMessage.send({
                    message: { cmd: h, tabId: c, new_word: g },
                    target: a.targetFromFrame[f],
                    id: "cmd_outer__page"
                });
                ("ChangeTo" == h || "ChangeAll" == h) && b.fire("saveSnapshot");
                "FinishChecking" == h && b.config.wsc_onFinish.call(CKEDITOR.document.getWindow().getFrame())
            };
            return{
                title: b.config.wsc_dialogTitle || b.lang.wsc.title,
                minWidth: 560,
                minHeight: 444,
                buttons: [CKEDITOR.dialog.cancelButton],
                onLoad: function() {
                    a.dialog = this;
                    a.dialog.hidePage("Thesaurus");
                    p();
                    r()
                },
                onShow: function() {
                    b.lockSelection(b.getSelection());
                    a.TextAreaNumber = "cke_textarea_" + CKEDITOR.currentInstance.name;
                    e.postMessage.init(B);
                    a.dataTemp = CKEDITOR.currentInstance.getData();
                    a.OverlayPlace = a.dialog.parts.tabs.getParent().$;
                    if (CKEDITOR && CKEDITOR.config) {
                        a.wsc_customerId = b.config.wsc_customerId;
                        a.cust_dic_ids =
                            b.config.wsc_customDictionaryIds;
                        a.userDictionaryName = b.config.wsc_userDictionaryName;
                        a.defaultLanguage = CKEDITOR.config.defaultLanguage;
                        var c = "file:" == document.location.protocol ? "http:" : document.location.protocol;
                        CKEDITOR.scriptLoader.load(
                            b.config.wsc_customLoaderScript ||
                            c +
                            "//loader.webspellchecker.net/sproxy_fck/sproxy.php?plugin=fck2&customerid=" +
                            a.wsc_customerId +
                            "&cmd=script&doc=wsc&schema=22",
                            function(c) {
                                CKEDITOR.config && CKEDITOR.config.wsc && CKEDITOR.config.wsc.DefaultParams
                                    ? (a.serverLocationHash =
                                        CKEDITOR.config.wsc.DefaultParams.serviceHost, a.logotype =
                                        CKEDITOR.config.wsc.DefaultParams.logoPath, a.loadIcon =
                                        CKEDITOR.config.wsc.DefaultParams.iconPath, a.loadIconEmptyEditor =
                                        CKEDITOR.config.wsc.DefaultParams.iconPathEmptyEditor, a.LangComparer =
                                        new CKEDITOR.config.wsc.DefaultParams._SP_FCK_LangCompare)
                                    : (a.serverLocationHash = DefaultParams.serviceHost, a.logotype =
                                        DefaultParams.logoPath, a.loadIcon =
                                        DefaultParams.iconPath, a.loadIconEmptyEditor =
                                        DefaultParams.iconPathEmptyEditor, a.LangComparer = new _SP_FCK_LangCompare);
                                a.pluginPath = CKEDITOR.getUrl(b.plugins.wsc.path);
                                a.iframeNumber = a.TextAreaNumber;
                                a.templatePath = a.pluginPath + "dialogs/tmp.html";
                                a.LangComparer.setDefaulLangCode(a.defaultLanguage);
                                a.currentLang = b.config.wsc_lang || a.LangComparer.getSPLangCode(b.langCode);
                                a.selectingLang = a.currentLang;
                                a.div_overlay = new o({
                                    opacity: "1",
                                    background: "#fff url(" + a.loadIcon + ") no-repeat 50% 50%",
                                    target: a.OverlayPlace
                                });
                                var d = a.dialog.parts.tabs.getId(), d = CKEDITOR.document.getById(d);
                                d.setStyle("width", "97%");
                                d.getElementsByTag("DIV").count() ||
                                    d.append(a.buildSelectLang(a.dialog.getParentEditor().name));
                                a.div_overlay_no_check = new o({
                                    opacity: "1",
                                    id: "no_check_over",
                                    background: "#fff url(" + a.loadIconEmptyEditor + ") no-repeat 50% 50%",
                                    target: a.OverlayPlace
                                });
                                c && (C(a.dialog), a.dialog.setupContent(a.dialog))
                            })
                    } else a.dialog.hide()
                },
                onHide: function() { a.dataTemp = "" },
                contents: [
                    {
                        id: "SpellTab",
                        label: "SpellChecker",
                        accessKey: "S",
                        elements: [
                            { type: "html", id: "banner", label: "banner", style: "", html: "<div></div>" }, {
                                type: "html",
                                id: "Content",
                                label: "spellContent",
                                html: "",
                                setup: function(b) {
                                    var b = a.iframeNumber + "_" + b._.currentTabId, c = document.getElementById(b);
                                    a.targetFromFrame[b] = c.contentWindow
                                }
                            }, {
                                type: "hbox",
                                id: "bottomGroup",
                                style: "width:560px; margin: 0 auto;",
                                widths: ["50%", "50%"],
                                children: [
                                    {
                                        type: "hbox",
                                        id: "leftCol",
                                        align: "left",
                                        width: "50%",
                                        children: [
                                            {
                                                type: "vbox",
                                                id: "rightCol1",
                                                widths: ["50%", "50%"],
                                                children: [
                                                    {
                                                        type: "text",
                                                        id: "text",
                                                        label: a.LocalizationLabel.ChangeTo.text + ":",
                                                        labelLayout: "horizontal",
                                                        labelStyle: "font: 12px/25px arial, sans-serif;",
                                                        width: "140px",
                                                        "default": "",
                                                        onShow: function() {
                                                            a.textNode.SpellTab = this;
                                                            a.LocalizationLabel.ChangeTo.instance = this
                                                        },
                                                        onHide: function() { this.reset() }
                                                    }, {
                                                        type: "hbox",
                                                        id: "rightCol",
                                                        align: "right",
                                                        width: "30%",
                                                        children: [
                                                            {
                                                                type: "vbox",
                                                                id: "rightCol_col__left",
                                                                children: [
                                                                    {
                                                                        type: "text",
                                                                        id: "labelSuggestions",
                                                                        label: a.LocalizationLabel.Suggestions.text +
                                                                            ":",
                                                                        onShow: function() {
                                                                            a.LocalizationLabel.Suggestions.instance =
                                                                                this;
                                                                            this.getInputElement().hide()
                                                                        }
                                                                    }, {
                                                                        type: "html",
                                                                        id: "logo",
                                                                        html:
                                                                            '<img width="99" height="68" border="0" src="" title="WebSpellChecker.net" alt="WebSpellChecker.net" style="display: inline-block;">',
                                                                        setup: function() {
                                                                            this.getElement().$.src = a.logotype;
                                                                            this.getElement().getParent()
                                                                                .setStyles({ "text-align": "left" })
                                                                        }
                                                                    }
                                                                ]
                                                            },
                                                            {
                                                                type: "select",
                                                                id: "list_of_suggestions",
                                                                labelStyle: "font: 12px/25px arial, sans-serif;",
                                                                size: "6",
                                                                inputStyle: "width: 140px; height: auto;",
                                                                items: [["loading..."]],
                                                                onShow: function() { n = this },
                                                                onHide: function() { this.clear() },
                                                                onChange: function() {
                                                                    a.textNode.SpellTab.setValue(this.getValue())
                                                                }
                                                            }
                                                        ]
                                                    }
                                                ]
                                            }
                                        ]
                                    }, {
                                        type: "hbox",
                                        id: "rightCol",
                                        align: "right",
                                        width: "50%",
                                        children: [
                                            {
                                                type: "vbox",
                                                id: "rightCol_col__left",
                                                widths: ["50%", "50%", "50%", "50%"],
                                                children: [
                                                    {
                                                        type: "button",
                                                        id: "ChangeTo",
                                                        label: a.LocalizationButton.ChangeTo.text,
                                                        title: "Change to",
                                                        style: "width: 100%;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd", this.id);
                                                            a.LocalizationButton.ChangeTo.instance = this
                                                        },
                                                        onClick: c
                                                    }, {
                                                        type: "button",
                                                        id: "ChangeAll",
                                                        label: a.LocalizationButton.ChangeAll.text,
                                                        title: "Change All",
                                                        style: "width: 100%;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd", this.id);
                                                            a.LocalizationButton.ChangeAll.instance = this
                                                        },
                                                        onClick: c
                                                    }, {
                                                        type: "button",
                                                        id: "AddWord",
                                                        label: a.LocalizationButton.AddWord.text,
                                                        title: "Add word",
                                                        style: "width: 100%;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd", this.id);
                                                            a.LocalizationButton.AddWord.instance = this
                                                        },
                                                        onClick: c
                                                    }, {
                                                        type: "button",
                                                        id: "FinishChecking",
                                                        label: a.LocalizationButton.FinishChecking.text,
                                                        title: "Finish Checking",
                                                        style: "width: 100%;margin-top: 9px;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd", this.id);
                                                            a.LocalizationButton.FinishChecking.instance = this
                                                        },
                                                        onClick: c
                                                    }
                                                ]
                                            }, {
                                                type: "vbox",
                                                id: "rightCol_col__right",
                                                widths: ["50%", "50%", "50%"],
                                                children: [
                                                    {
                                                        type: "button",
                                                        id: "IgnoreWord",
                                                        label: a.LocalizationButton.IgnoreWord.text,
                                                        title: "Ignore word",
                                                        style: "width: 100%;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd", this.id);
                                                            a.LocalizationButton.IgnoreWord.instance = this
                                                        },
                                                        onClick: c
                                                    }, {
                                                        type: "button",
                                                        id: "IgnoreAllWords",
                                                        label: a.LocalizationButton.IgnoreAllWords.text,
                                                        title: "Ignore all words",
                                                        style: "width: 100%;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd",
                                                                this.id);
                                                            a.LocalizationButton.IgnoreAllWords.instance = this
                                                        },
                                                        onClick: c
                                                    }, {
                                                        type: "button",
                                                        id: "option",
                                                        label: a.LocalizationButton.Options.text,
                                                        title: "Option",
                                                        style: "width: 100%;",
                                                        onLoad: function() {
                                                            a.LocalizationButton.Options.instance = this;
                                                            "file:" == document.location.protocol && this.disable()
                                                        },
                                                        onClick: function() {
                                                            "file:" == document.location.protocol
                                                                ? alert(
                                                                    "WSC: Options functionality is disabled when runing from file system")
                                                                : b.openDialog("options")
                                                        }
                                                    }
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }, {
                                type: "hbox",
                                id: "BlockFinishChecking",
                                style: "width:560px; margin: 0 auto;",
                                widths: ["70%", "30%"],
                                onShow: function() { this.getElement().hide() },
                                onHide: l,
                                children: [
                                    {
                                        type: "hbox",
                                        id: "leftCol",
                                        align: "left",
                                        width: "70%",
                                        children: [
                                            {
                                                type: "vbox",
                                                id: "rightCol1",
                                                setup: function() {
                                                    this.getChild()[0].getElement().$.src = a.logotype;
                                                    this.getChild()[0].getElement().getParent()
                                                        .setStyles({ "text-align": "center" })
                                                },
                                                children: [
                                                    {
                                                        type: "html",
                                                        id: "logo",
                                                        html:
                                                            '<img width="99" height="68" border="0" src="" title="WebSpellChecker.net" alt="WebSpellChecker.net" style="display: inline-block;">'
                                                    }
                                                ]
                                            }
                                        ]
                                    }, {
                                        type: "hbox",
                                        id: "rightCol",
                                        align: "right",
                                        width: "30%",
                                        children: [
                                            {
                                                type: "vbox",
                                                id: "rightCol_col__left",
                                                children: [
                                                    {
                                                        type: "button",
                                                        id: "Option_button",
                                                        label: a.LocalizationButton.Options.text,
                                                        title: "Option",
                                                        style: "width: 100%;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd", this.id);
                                                            "file:" == document.location.protocol && this.disable()
                                                        },
                                                        onClick: function() {
                                                            "file:" == document.location.protocol
                                                                ? alert(
                                                                    "WSC: Options functionality is disabled when runing from file system")
                                                                : b.openDialog("options")
                                                        }
                                                    }, {
                                                        type: "button",
                                                        id: "FinishChecking",
                                                        label: a.LocalizationButton.FinishChecking.text,
                                                        title: "Finish Checking",
                                                        style: "width: 100%;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd", this.id)
                                                        },
                                                        onClick: c
                                                    }
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }, {
                        id: "GrammTab",
                        label: "Grammar",
                        accessKey: "G",
                        elements: [
                            { type: "html", id: "banner", label: "banner", style: "", html: "<div></div>" }, {
                                type: "html",
                                id: "Content",
                                label: "GrammarContent",
                                html: "",
                                setup: function() {
                                    var b = a.iframeNumber + "_" + a.dialog._.currentTabId,
                                        c = document.getElementById(b);
                                    a.targetFromFrame[b] = c.contentWindow
                                }
                            },
                            {
                                type: "vbox",
                                id: "bottomGroup",
                                style: "width:560px; margin: 0 auto;",
                                children: [
                                    {
                                        type: "hbox",
                                        id: "leftCol",
                                        widths: ["66%", "34%"],
                                        children: [
                                            {
                                                type: "vbox",
                                                children: [
                                                    {
                                                        type: "text",
                                                        id: "text",
                                                        label: "Change to:",
                                                        labelLayout: "horizontal",
                                                        labelStyle: "font: 12px/25px arial, sans-serif;",
                                                        inputStyle: "float: right; width: 200px;",
                                                        "default": "",
                                                        onShow: function() { a.textNode.GrammTab = this },
                                                        onHide: function() { this.reset() }
                                                    }, {
                                                        type: "html",
                                                        id: "html_text",
                                                        html:
                                                            "<div style='min-height: 17px; line-height: 17px; padding: 5px; text-align: left;background: #F1F1F1;color: #595959; white-space: normal!important;'></div>",
                                                        onShow: function() { a.textNodeInfo.GrammTab = this }
                                                    },
                                                    {
                                                        type: "html",
                                                        id: "radio",
                                                        html: "",
                                                        onShow: function() { a.grammerSuggest = this }
                                                    }
                                                ]
                                            }, {
                                                type: "vbox",
                                                children: [
                                                    {
                                                        type: "button",
                                                        id: "ChangeTo",
                                                        label: "Change to",
                                                        title: "Change to",
                                                        style: "width: 133px; float: right;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd", this.id)
                                                        },
                                                        onClick: c
                                                    }, {
                                                        type: "button",
                                                        id: "IgnoreWord",
                                                        label: "Ignore word",
                                                        title: "Ignore word",
                                                        style: "width: 133px; float: right;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd", this.id)
                                                        },
                                                        onClick: c
                                                    },
                                                    {
                                                        type: "button",
                                                        id: "IgnoreAllWords",
                                                        label: "Ignore Problem",
                                                        title: "Ignore Problem",
                                                        style: "width: 133px; float: right;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd", this.id)
                                                        },
                                                        onClick: c
                                                    },
                                                    {
                                                        type: "button",
                                                        id: "FinishChecking",
                                                        label: "Finish Checking",
                                                        title: "Finish Checking",
                                                        style: "width: 133px; float: right; margin-top: 9px;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd", this.id)
                                                        },
                                                        onClick: c
                                                    }
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }, {
                                type: "hbox",
                                id: "BlockFinishChecking",
                                style: "width:560px; margin: 0 auto;",
                                widths: ["70%", "30%"],
                                onShow: function() { this.getElement().hide() },
                                onHide: l,
                                children: [
                                    {
                                        type: "hbox",
                                        id: "leftCol",
                                        align: "left",
                                        width: "70%",
                                        children: [
                                            {
                                                type: "vbox",
                                                id: "rightCol1",
                                                children: [
                                                    {
                                                        type: "html",
                                                        id: "logo",
                                                        html:
                                                            '<img width="99" height="68" border="0" src="" title="WebSpellChecker.net" alt="WebSpellChecker.net" style="display: inline-block;">',
                                                        setup: function() {
                                                            this.getElement().$.src = a.logotype;
                                                            this.getElement().getParent()
                                                                .setStyles({ "text-align": "center" })
                                                        }
                                                    }
                                                ]
                                            }
                                        ]
                                    }, {
                                        type: "hbox",
                                        id: "rightCol",
                                        align: "right",
                                        width: "30%",
                                        children: [
                                            {
                                                type: "vbox",
                                                id: "rightCol_col__left",
                                                children: [
                                                    {
                                                        type: "button",
                                                        id: "FinishChecking",
                                                        label: "Finish Checking",
                                                        title: "Finish Checking",
                                                        style: "width: 100%;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd", this.id)
                                                        },
                                                        onClick: c
                                                    }
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }, {
                        id: "Thesaurus",
                        label: "Thesaurus",
                        accessKey: "T",
                        elements: [
                            { type: "html", id: "banner", label: "banner", style: "", html: "<div></div>" }, {
                                type: "html",
                                id: "Content",
                                label: "spellContent",
                                html: "",
                                setup: function() {
                                    var b = a.iframeNumber + "_" + a.dialog._.currentTabId,
                                        c = document.getElementById(b);
                                    a.targetFromFrame[b] = c.contentWindow
                                }
                            }, {
                                type: "vbox",
                                id: "bottomGroup",
                                style: "width:560px; margin: -10px auto; overflow: hidden;",
                                children: [
                                    {
                                        type: "hbox",
                                        widths: ["75%", "25%"],
                                        children: [
                                            {
                                                type: "vbox",
                                                children: [
                                                    {
                                                        type: "hbox",
                                                        widths: ["65%", "35%"],
                                                        children: [
                                                            {
                                                                type: "text",
                                                                id: "ChangeTo",
                                                                label: "Change to:",
                                                                labelLayout: "horizontal",
                                                                inputStyle: "width: 160px;",
                                                                labelStyle: "font: 12px/25px arial, sans-serif;",
                                                                "default": "",
                                                                onShow: function() { a.textNode.Thesaurus = this },
                                                                onHide: function() { this.reset() }
                                                            },
                                                            {
                                                                type: "button",
                                                                id: "ChangeTo",
                                                                label: "Change to",
                                                                title: "Change to",
                                                                style: "width: 121px; margin-top: 1px;",
                                                                onLoad: function() {
                                                                    this.getElement().setAttribute("title-cmd", this.id)
                                                                },
                                                                onClick: c
                                                            }
                                                        ]
                                                    }, {
                                                        type: "hbox",
                                                        children: [
                                                            {
                                                                type: "select",
                                                                id: "categories",
                                                                label: "Categories:",
                                                                labelStyle: "font: 12px/25px arial, sans-serif;",
                                                                size: "5",
                                                                inputStyle: "width: 180px; height: auto;",
                                                                items: [],
                                                                onShow: function() { a.selectNode.categories = this },
                                                                onHide: function() { this.clear() },
                                                                onChange: function() {
                                                                    a.buildOptionSynonyms(this.getValue())
                                                                }
                                                            },
                                                            {
                                                                type: "select",
                                                                id: "synonyms",
                                                                label: "Synonyms:",
                                                                labelStyle: "font: 12px/25px arial, sans-serif;",
                                                                size: "5",
                                                                inputStyle: "width: 180px; height: auto;",
                                                                items: [],
                                                                onShow: function() {
                                                                    a.selectNode.synonyms = this;
                                                                    a.textNode.Thesaurus.setValue(this.getValue())
                                                                },
                                                                onHide: function() { this.clear() },
                                                                onChange: function() {
                                                                    a.textNode.Thesaurus.setValue(this.getValue())
                                                                }
                                                            }
                                                        ]
                                                    }
                                                ]
                                            }, {
                                                type: "vbox",
                                                width: "120px",
                                                style: "margin-top:46px;",
                                                children: [
                                                    {
                                                        type: "html",
                                                        id: "logotype",
                                                        label: "WebSpellChecker.net",
                                                        html:
                                                            '<img width="99" height="68" border="0" src="" title="WebSpellChecker.net" alt="WebSpellChecker.net" style="display: inline-block;">',
                                                        setup: function() {
                                                            this.getElement().$.src = a.logotype;
                                                            this.getElement().getParent()
                                                                .setStyles({ "text-align": "center" })
                                                        }
                                                    },
                                                    {
                                                        type: "button",
                                                        id: "FinishChecking",
                                                        label: "Finish Checking",
                                                        title: "Finish Checking",
                                                        style: "width: 121px; float: right; margin-top: 9px;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd", this.id)
                                                        },
                                                        onClick: c
                                                    }
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }, {
                                type: "hbox",
                                id: "BlockFinishChecking",
                                style: "width:560px; margin: 0 auto;",
                                widths: ["70%", "30%"],
                                onShow: function() { this.getElement().hide() },
                                children: [
                                    {
                                        type: "hbox",
                                        id: "leftCol",
                                        align: "left",
                                        width: "70%",
                                        children: [
                                            {
                                                type: "vbox",
                                                id: "rightCol1",
                                                children: [
                                                    {
                                                        type: "html",
                                                        id: "logo",
                                                        html:
                                                            '<img width="99" height="68" border="0" src="" title="WebSpellChecker.net" alt="WebSpellChecker.net" style="display: inline-block;">',
                                                        setup: function() {
                                                            this.getElement().$.src = a.logotype;
                                                            this.getElement().getParent()
                                                                .setStyles({ "text-align": "center" })
                                                        }
                                                    }
                                                ]
                                            }
                                        ]
                                    }, {
                                        type: "hbox",
                                        id: "rightCol",
                                        align: "right",
                                        width: "30%",
                                        children: [
                                            {
                                                type: "vbox",
                                                id: "rightCol_col__left",
                                                children: [
                                                    {
                                                        type: "button",
                                                        id: "FinishChecking",
                                                        label: "Finish Checking",
                                                        title: "Finish Checking",
                                                        style: "width: 100%;",
                                                        onLoad: function() {
                                                            this.getElement().setAttribute("title-cmd", this.id)
                                                        },
                                                        onClick: c
                                                    }
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        });
    CKEDITOR.dialog.add("options",
        function() {
            var b = null, c = {}, d = {}, f = null, g = null;
            e.cookie.get("udn");
            e.cookie.get("osp");
            var h = function() {
                    g = this.getElement().getAttribute("title-cmd");
                    var a = [];
                    a[0] = d.IgnoreAllCapsWords;
                    a[1] = d.IgnoreWordsNumbers;
                    a[2] = d.IgnoreMixedCaseWords;
                    a[3] = d.IgnoreDomainNames;
                    a = a.toString().replace(/,/g, "");
                    e.cookie.set("osp",
                        a);
                    e.cookie.set("udnCmd", g ? g : "ignore");
                    "delete" != g && (a = "", "" !== j.getValue() && (a = j.getValue()), e.cookie.set("udn", a));
                    e.postMessage.send({ id: "options_dic_send" })
                },
                i = function() {
                    f.getElement().setHtml(a.LocalizationComing.error);
                    f.getElement().show()
                };
            return{
                title: a.LocalizationComing.Options,
                minWidth: 430,
                minHeight: 130,
                resizable: CKEDITOR.DIALOG_RESIZE_NONE,
                contents: [
                    {
                        id: "OptionsTab",
                        label: "Options",
                        accessKey: "O",
                        elements: [
                            {
                                type: "hbox",
                                id: "options_error",
                                children: [
                                    {
                                        type: "html",
                                        style:
                                            "display: block;text-align: center;white-space: normal!important; font-size: 12px;color:red",
                                        html: "<div></div>",
                                        onShow: function() { f = this }
                                    }
                                ]
                            }, {
                                type: "vbox",
                                id: "Options_content",
                                children: [
                                    {
                                        type: "hbox",
                                        id: "Options_manager",
                                        widths: ["52%", "48%"],
                                        children: [
                                            {
                                                type: "fieldset",
                                                label: "Spell Checking Options",
                                                style: "border: none;margin-top: 13px;padding: 10px 0 10px 10px",
                                                onShow: function() {
                                                    this.getInputElement().$.children[0].innerHTML =
                                                        a.LocalizationComing.SpellCheckingOptions
                                                },
                                                children: [
                                                    {
                                                        type: "vbox",
                                                        id: "Options_checkbox",
                                                        children: [
                                                            {
                                                                type: "checkbox",
                                                                id: "IgnoreAllCapsWords",
                                                                label: "Ignore All-Caps Words",
                                                                labelStyle:
                                                                    "margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",
                                                                style: "float:left; min-height: 16px;",
                                                                "default": "",
                                                                onClick: function() {
                                                                    d[this.id] = !this.getValue() ? 0 : 1
                                                                }
                                                            },
                                                            {
                                                                type: "checkbox",
                                                                id: "IgnoreWordsNumbers",
                                                                label: "Ignore Words with Numbers",
                                                                labelStyle:
                                                                    "margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",
                                                                style: "float:left; min-height: 16px;",
                                                                "default": "",
                                                                onClick: function() {
                                                                    d[this.id] = !this.getValue() ? 0 : 1
                                                                }
                                                            }, {
                                                                type: "checkbox",
                                                                id: "IgnoreMixedCaseWords",
                                                                label: "Ignore Mixed-Case Words",
                                                                labelStyle:
                                                                    "margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",
                                                                style: "float:left; min-height: 16px;",
                                                                "default": "",
                                                                onClick: function() {
                                                                    d[this.id] = !this.getValue() ? 0 : 1
                                                                }
                                                            }, {
                                                                type: "checkbox",
                                                                id: "IgnoreDomainNames",
                                                                label: "Ignore Domain Names",
                                                                labelStyle:
                                                                    "margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",
                                                                style: "float:left; min-height: 16px;",
                                                                "default": "",
                                                                onClick: function() {
                                                                    d[this.id] =
                                                                        !this.getValue() ? 0 : 1
                                                                }
                                                            }
                                                        ]
                                                    }
                                                ]
                                            }, {
                                                type: "vbox",
                                                id: "Options_DictionaryName",
                                                children: [
                                                    {
                                                        type: "text",
                                                        id: "DictionaryName",
                                                        style: "margin-bottom: 10px",
                                                        label: "Dictionary Name:",
                                                        labelLayout: "vertical",
                                                        labelStyle: "font: 12px/25px arial, sans-serif;",
                                                        "default": "",
                                                        onLoad: function() {
                                                            j = this;
                                                            this.setValue(a.userDictionaryName
                                                                ? a.userDictionaryName
                                                                : (e.cookie.get("udn"), this.getValue()))
                                                        },
                                                        onShow: function() {
                                                            j = this;
                                                            this.setValue(!e.cookie.get("udn")
                                                                ? this.getValue()
                                                                : e.cookie.get("udn"));
                                                            this.setLabel(a.LocalizationComing.DictionaryName)
                                                        },
                                                        onHide: function() { this.reset() }
                                                    }, {
                                                        type: "hbox",
                                                        id: "Options_buttons",
                                                        children: [
                                                            {
                                                                type: "vbox",
                                                                id: "Options_leftCol_col",
                                                                widths: ["50%", "50%"],
                                                                children: [
                                                                    {
                                                                        type: "button",
                                                                        id: "create",
                                                                        label: "Create",
                                                                        title: "Create",
                                                                        style: "width: 100%;",
                                                                        onLoad: function() {
                                                                            this.getElement().setAttribute("title-cmd",
                                                                                this.id)
                                                                        },
                                                                        onShow: function() {
                                                                            this.getElement()
                                                                                .setText(a.LocalizationComing.Create)
                                                                        },
                                                                        onClick: h
                                                                    }, {
                                                                        type: "button",
                                                                        id: "restore",
                                                                        label: "Restore",
                                                                        title: "Restore",
                                                                        style: "width: 100%;",
                                                                        onLoad: function() {
                                                                            this.getElement().setAttribute("title-cmd",
                                                                                this.id)
                                                                        },
                                                                        onShow: function() {
                                                                            this.getElement()
                                                                                .setText(a.LocalizationComing.Restore)
                                                                        },
                                                                        onClick: h
                                                                    }
                                                                ]
                                                            }, {
                                                                type: "vbox",
                                                                id: "Options_rightCol_col",
                                                                widths: ["50%", "50%"],
                                                                children: [
                                                                    {
                                                                        type: "button",
                                                                        id: "rename",
                                                                        label: "Rename",
                                                                        title: "Rename",
                                                                        style: "width: 100%;",
                                                                        onLoad: function() {
                                                                            this.getElement().setAttribute("title-cmd",
                                                                                this.id)
                                                                        },
                                                                        onShow: function() {
                                                                            this.getElement()
                                                                                .setText(a.LocalizationComing.Rename)
                                                                        },
                                                                        onClick: h
                                                                    }, {
                                                                        type: "button",
                                                                        id: "delete",
                                                                        label: "Remove",
                                                                        title: "Remove",
                                                                        style: "width: 100%;",
                                                                        onLoad: function() {
                                                                            this.getElement().setAttribute("title-cmd",
                                                                                this.id)
                                                                        },
                                                                        onShow: function() {
                                                                            this.getElement()
                                                                                .setText(a.LocalizationComing.Remove)
                                                                        },
                                                                        onClick: h
                                                                    }
                                                                ]
                                                            }
                                                        ]
                                                    }
                                                ]
                                            }
                                        ]
                                    },
                                    {
                                        type: "hbox",
                                        id: "Options_text",
                                        children: [
                                            {
                                                type: "html",
                                                style:
                                                    "text-align: justify;margin-top: 15px;white-space: normal!important; font-size: 12px;color:#777;",
                                                html: "<div>" + a.LocalizationComing.OptionsTextIntro + "</div>",
                                                onShow: function() {
                                                    this.getElement().setText(a.LocalizationComing.OptionsTextIntro)
                                                }
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ],
                buttons: [CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton],
                onOk: function() {
                    var a = [];
                    a[0] = d.IgnoreAllCapsWords;
                    a[1] = d.IgnoreWordsNumbers;
                    a[2] = d.IgnoreMixedCaseWords;
                    a[3] = d.IgnoreDomainNames;
                    a = a.toString().replace(/,/g, "");
                    e.cookie.set("osp", a);
                    e.cookie.set("udn", j.getValue());
                    e.postMessage.send({ id: "options_checkbox_send" });
                    f.getElement().hide();
                    f.getElement().setHtml(" ")
                },
                onLoad: function() {
                    b = this;
                    e.postMessage.init(i);
                    c.IgnoreAllCapsWords = b.getContentElement("OptionsTab", "IgnoreAllCapsWords");
                    c.IgnoreWordsNumbers = b.getContentElement("OptionsTab", "IgnoreWordsNumbers");
                    c.IgnoreMixedCaseWords =
                        b.getContentElement("OptionsTab", "IgnoreMixedCaseWords");
                    c.IgnoreDomainNames = b.getContentElement("OptionsTab", "IgnoreDomainNames")
                },
                onShow: function() {
                    var b = e.cookie.get("osp").split("");
                    d.IgnoreAllCapsWords = b[0];
                    d.IgnoreWordsNumbers = b[1];
                    d.IgnoreMixedCaseWords = b[2];
                    d.IgnoreDomainNames = b[3];
                    !parseInt(d.IgnoreAllCapsWords, 10)
                        ? c.IgnoreAllCapsWords.setValue("", !1)
                        : c.IgnoreAllCapsWords.setValue("checked", !1);
                    !parseInt(d.IgnoreWordsNumbers, 10)
                        ? c.IgnoreWordsNumbers.setValue("", !1)
                        : c.IgnoreWordsNumbers.setValue("checked",
                            !1);
                    !parseInt(d.IgnoreMixedCaseWords, 10)
                        ? c.IgnoreMixedCaseWords.setValue("", !1)
                        : c.IgnoreMixedCaseWords.setValue("checked", !1);
                    !parseInt(d.IgnoreDomainNames, 10)
                        ? c.IgnoreDomainNames.setValue("", !1)
                        : c.IgnoreDomainNames.setValue("checked", !1);
                    d.IgnoreAllCapsWords = !c.IgnoreAllCapsWords.getValue() ? 0 : 1;
                    d.IgnoreWordsNumbers = !c.IgnoreWordsNumbers.getValue() ? 0 : 1;
                    d.IgnoreMixedCaseWords = !c.IgnoreMixedCaseWords.getValue() ? 0 : 1;
                    d.IgnoreDomainNames = !c.IgnoreDomainNames.getValue() ? 0 : 1;
                    c.IgnoreAllCapsWords.getElement().$.lastChild.innerHTML =
                        a.LocalizationComing.IgnoreAllCapsWords;
                    c.IgnoreWordsNumbers.getElement().$.lastChild.innerHTML =
                        a.LocalizationComing.IgnoreWordsWithNumbers;
                    c.IgnoreMixedCaseWords.getElement().$.lastChild.innerHTML =
                        a.LocalizationComing.IgnoreMixedCaseWords;
                    c.IgnoreDomainNames.getElement().$.lastChild.innerHTML = a.LocalizationComing.IgnoreDomainNames
                }
            }
        });
    CKEDITOR.dialog.on("resize",
        function(b) {
            var b = b.data, c = b.dialog, d = CKEDITOR.document.getById(a.iframeNumber + "_" + c._.currentTabId);
            "checkspell" == c._.name &&
            (a.bnr
                ? d &&
                d.setSize("height", b.height - 310)
                : d && d.setSize("height", b.height - 220))
        });
    CKEDITOR.on("dialogDefinition",
        function(b) {
            var c = b.data.definition;
            a.onLoadOverlay = new o({ opacity: "1", background: "#fff", target: c.dialog.parts.tabs.getParent().$ });
            a.onLoadOverlay.setEnable();
            c.dialog.on("show", function() {});
            c.dialog.on("cancel",
                function() {
                    c.dialog.getParentEditor().config.wsc_onClose.call(this.document.getWindow().getFrame());
                    a.div_overlay.setDisable();
                    return!1
                },
                this,
                null,
                -1)
        })
})();
